<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/4/11
 * Time: 16:50
 */

namespace Modules\Api\Http\Controllers;
use Illuminate\Support\Facades\Request;
use HiCommon\Service\RongService;
class RongController extends BaseController
{



    /**
     *  获取用户的Token
     *  hinq 2019 12 10
     *
     **/
    public function getToken(){
        $user = api_user();  //获取登录用户信息
        $temp['user_id'] = $user['username'];
        $temp['name'] = $user['nickname'];
        $temp['portrait_uri'] = empty( $user['head_img'] ) ? oss_full_url('xinda/file/2020-03/02/200302093556_5e5c62fcdbb82.jpeg') : oss_full_url( $user['head_img'] );
        return RongService::getToken( (array) $temp );
    }

    /**
     *  更新用户的信息
     *  hinq 2019 12 10
     *
     **/
    public function userRefresh(){
        $user = api_user();  //获取登录用户信息
        $temp['user_id'] = $user['username'];
        $temp['name'] = $user['nickname'];
        $temp['portrait_uri'] = empty( $user['head_img'] ) ? oss_full_url('xinda/file/2020-03/02/200302093556_5e5c62fcdbb82.jpeg') : oss_full_url( $user['head_img'] );
        return RongService::userRefresh( (array) $temp );
    }



    /**
     *  用户-》用户 发送消息
     *  hinq 2019 12 10
     *  touserId   最多同时只能发送1000
     * 单聊消息  每分钟最多发送6000条信息
     **/
    public function messagePush( Request $request ){

        $user = api_user();
        $image = empty( $user['head_img'] ) ? oss_full_url('xinda/file/2020-03/02/200302093556_5e5c62fcdbb82.jpeg') : oss_full_url( $user['head_img'] );
        $arr_input = (array) $request::all();
        $arr_input['content'] = json_encode( $arr_input['content']  );
        $fromUserId = $user['username'];     //发送者id
        $toUserId = $arr_input['toUserId'];     //接收者用户id
        $objectName = $arr_input['objectName'];     //发送的消息类型
        if( $arr_input['objectName'] == "RC:TxtMsg" ) {    //文字消息
            $content = [
                "content"=> $arr_input['content'],   //文字消息的文字内容，包括表情 、超链接（会自动识别）。
                "user"=>[       //发送者信息   [可要可不要，有的话优先显示这个信息]
                    "id"=>$user['username'],
                    "name"=>$user['nickname'],
                    "icon"=>oss_full_url( $image ),
                    "extra"=>"extra"
                ],
                "extra"=>""    //扩展信息，可以放置任意的数据内容，也可以去掉此属性。
            ];
        }else if( $arr_input['objectName'] == "RC:VcMsg" ){   //语音消息
            $content = [
                "content"=> $arr_input['content'],      //语音内容，格式为 AMR，以 Base64 进行 Encode 后需要将所有 \r\n 和 \r 和 \n 替换成空，大小建议不超过 60k
                "duration"=> $arr_input['duration'],    //语音消息的时长，最长为 60 秒（单位：秒）。
                "user"=>[       //发送者信息   [可要可不要，有的话优先显示这个信息]
                    "id"=>$user['username'],
                    "name"=>$user['nickname'],
                    "icon"=>oss_full_url( $image ),
                    "extra"=>"extra"
                ],
                "extra"=>""    //扩展信息，可以放置任意的数据内容，也可以去掉此属性。
            ];
        }else if( $arr_input['objectName'] == "RC:ImgMsg" ){     //图片消息
            $content = [
                "content"=> $arr_input['content'],      //图片缩略图，格式为 JPG，大小建议不超过 100k，注意在 Base64 进行 Encode 后需要将所有 \r\n 和 \r 和 \n 替换成空。
                "imageUri"=> $arr_input['imageUri'],    //图片上传到图片存储服务器后的地址。
                "isFull"=>false,     //是否发送原图，true 发送原图、false 不发送原图，Web SDK 中没有此属性。
                "user"=>[       //发送者信息   [可要可不要，有的话优先显示这个信息]
                    "id"=>$user['username'],
                    "icon"=>oss_full_url( $image ),
                    "name"=>$user['nickname'],
                    "extra"=>"extra"
                ],
                "extra"=>""    //扩展信息，可以放置任意的数据内容，也可以去掉此属性。
            ];
        }else if( $arr_input['objectName'] == "RC:ImgTextMsg" ){     //图文消息
            $content = [
                "title"=> $arr_input['title'],       //图文的标题
                "content"=> $arr_input['content'],      //图片缩略图，格式为 JPG，大小建议不超过 100k，注意在 Base64 进行 Encode 后需要将所有 \r\n 和 \r 和 \n 替换成空。
                "imageUri"=> $arr_input['imageUri'],    //消息中图片地址，图片尺寸为：120 x 120 像素。
                "url"=> $arr_input['url'],              //点击图片消息后跳转的 URL 地址。
                "user"=>[       //发送者信息   [可要可不要，有的话优先显示这个信息]
                    "id"=>$user['username'],
                    "icon"=>oss_full_url( $image ),
                    "name"=>$user['nickname'],
                    "extra"=>"extra"
                ],
                "extra"=>""    //扩展信息，可以放置任意的数据内容，也可以去掉此属性。
            ];
        }else{
            return hello_error('消息类型错误');
        }
        return RongService::messagePush( $fromUserId,$toUserId,$objectName, json_encode( $content ) );
    }


    public function push( Request $request ){
        $arr_list =  $request::all();
        $arr_temp = json_decode( $arr_list['params'] , true );

        return RongService::push( $arr_temp );

    }




    /**
     *  检测指定用户是否在线
     *  hinq 2019 12 10
     *
     **/
    public function online( Request $request ){

        $arr_input = (array) $request::all();
        $userId = $arr_input['userId'];
        return RongService::online( $userId );
    }


    /**
     *  获取 APP 内指定某天某小时内的所有会话消息记录的下载地址
     *  hinq 2020 4 23
     *
     **/
    public function messageHistory( Request $request ){
        $arr_input = (array) $request::all();
        return RongService::messageHistory( $arr_input );
    }



}